package org.feature.multi.perspective.generator;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.layout.RowLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
public class GeneratePropertiesDialog extends MessageDialog {
private GenerateProperties properties;
private Button generateConsistentMappingButtonTrue;
private Button generateViewmodelButtonTrue;
private Button reuseMappingButtonTrue;
public GeneratePropertiesDialog(GenerateProperties properties, Shell parentShell, String dialogTitle, Image dialogTitleImage,
String dialogMessage, int dialogImageType, String[] dialogButtonLabels, int defaultIndex) {
super(parentShell, dialogTitle, dialogTitleImage, dialogMessage, dialogImageType, dialogButtonLabels, defaultIndex);
this.properties = properties;
}
@Override
protected Control createCustomArea(Composite parent) {
Composite composite1 = new Composite(parent, SWT.NULL);
composite1.setLayout(new RowLayout());
Label consistentLabel = new Label(composite1, SWT.NULL);
consistentLabel.setText("Generate only mappings, where all viewpoints are consistent?");
generateConsistentMappingButtonTrue = new Button(composite1, SWT.RADIO);
generateConsistentMappingButtonTrue.setText("Yes");
Button generateConsistentMappingButtonFalse = new Button(composite1, SWT.RADIO);
generateConsistentMappingButtonFalse.setText("No.");
Composite composite2 = new Composite(parent, SWT.NULL);
composite2.setLayout(new RowLayout());
Label generateViewmodelLabel = new Label(composite2, SWT.NULL);
generateViewmodelLabel.setText("Generate view model?");
generateViewmodelButtonTrue = new Button(composite2, SWT.RADIO);
generateViewmodelButtonTrue.setText("Yes");
Button generateViewmodelButtonFalse = new Button(composite2, SWT.RADIO);
generateViewmodelButtonFalse.setText("No.");
Composite composite3 = new Composite(parent, SWT.NULL);
composite3.setLayout(new RowLayout());
Label reuseMappingLabel = new Label(composite3, SWT.NULL);
reuseMappingLabel.setText("Reuse mapping?");
reuseMappingButtonTrue = new Button(composite3, SWT.RADIO);
reuseMappingButtonTrue.setText("Yes");
Button reuseMappingButtonFalse = new Button(composite3, SWT.RADIO);
reuseMappingButtonFalse.setText("No.");
// set Buttons selected
boolean generateConsistentMapping = properties.isGenerateConsistentMapping();
generateConsistentMappingButtonTrue.setSelection(generateConsistentMapping);
generateConsistentMappingButtonFalse.setSelection(!generateConsistentMapping);
boolean generateViewmodel = properties.isGenerateViewmodel();
generateViewmodelButtonTrue.setSelection(generateViewmodel);
generateViewmodelButtonFalse.setSelection(!generateViewmodel);
boolean reuseMapping = properties.isReuseMapping();
reuseMappingButtonTrue.setSelection(reuseMapping);
reuseMappingButtonFalse.setSelection(!reuseMapping);
return parent;
}
@Override
protected void buttonPressed(int buttonId) {
refreshProperties();
super.buttonPressed(buttonId);
}
private void refreshProperties() {
properties.setGenerateConsistentMapping(generateConsistentMappingButtonTrue.getSelection());
properties.setGenerateViewmodel(generateViewmodelButtonTrue.getSelection());
properties.setReuseMapping(reuseMappingButtonTrue.getSelection());
}
}